package com.fowo.api.model.purchase;

import com.alibaba.excel.annotation.ExcelProperty;
import com.fowo.api.common.validator.*;
import javax.validation.constraints.*;
import lombok.Data;

/**
 * 采购计划子表 预览导入辅助模型(全字段为文本类型)
 * @author yl_ls
 */
@Data
public class PurchasePlansProductImportPo {

  /** 所属采购计划 */
  @ExcelProperty("所属采购计划")
  @Size(max = 50, message = "所属采购计划长度不能超过50")
  private String parentPurchasePlansPpgSn;

  /** 计划编号 */
  @ExcelProperty("计划编号")
  private String planSn;

  /** 图片 */
  @ExcelProperty("图片")
  @Size(max = 50, message = "图片长度不能超过50")
  private String picUrlName;

  /** 产品 */
  @ExcelProperty("产品")
  @Size(max = 500, message = "产品长度不能超过500")
  private String productName;

  /** SKU */
  @ExcelProperty("SKU")
  @Size(max = 50, message = "SKU长度不能超过50")
  private String sku;

  /** 标签 */
  @ExcelProperty("标签")
  @Size(max = 50, message = "标签长度不能超过50")
  private String tags;

  /** 店铺 */
  @ExcelProperty("店铺")
  @Size(max = 50, message = "店铺长度不能超过50")
  private String sidShopName;

  /** 店铺名称 */
  @ExcelProperty("店铺名称")
  @Size(max = 50, message = "店铺名称长度不能超过50")
  private String sellerName;

  /** 国家 */
  @ExcelProperty("国家")
  @Size(max = 50, message = "国家长度不能超过50")
  private String marketplace;

  /** FNSKU */
  @ExcelProperty("FNSKU")
  @Size(max = 50, message = "FNSKU长度不能超过50")
  private String fnsku;

  /** MSKU */
  @ExcelProperty("MSKU")
  @Size(max = 50, message = "MSKU长度不能超过50")
  private String msku;

  /** 供应商 */
  @ExcelProperty("供应商")
  @Size(max = 50, message = "供应商长度不能超过50")
  private String supplierIdSupplierName;

  /** 供应商名称 */
  @ExcelProperty("供应商名称")
  @Size(max = 50, message = "供应商名称长度不能超过50")
  private String supplierName;

  /** 仓库 */
  @ExcelProperty("仓库")
  @Size(max = 50, message = "仓库长度不能超过50")
  private String widName;

  /** 仓库名称 */
  @ExcelProperty("仓库名称")
  @Size(max = 100, message = "仓库名称长度不能超过100")
  private String warehouseName;

  /** 单箱数量 */
  @ExcelProperty("单箱数量")
  @IntegerString(message = "单箱数量数值格式不正确", label = "单箱数量")
  private String cgBoxPcs;

  /** 计划采购量 */
  @ExcelProperty("计划采购量")
  @IntegerString(
    message = "计划采购量数值格式不正确",
    label = "计划采购量",
    min = 0
  )
  private String quantityPlan;

  /** 建议采购量 */
  @ExcelProperty("建议采购量")
  @IntegerString(
    message = "建议采购量数值格式不正确",
    label = "建议采购量",
    min = 0
  )
  private String quantitySuggestion;

  /** 供应商报价ID */
  @ExcelProperty("供应商报价ID")
  @DecimalString(message = "供应商报价ID小数格式不正确", label = "供应商报价ID")
  private String psqIdLaborCost;

  /** 供应商报价 */
  @ExcelProperty("供应商报价")
  @DecimalString(message = "供应商报价小数格式不正确", label = "供应商报价")
  private String psq;

  /** 采购数量 */
  @ExcelProperty("采购数量")
  @IntegerString(message = "采购数量数值格式不正确", label = "采购数量")
  private String psqMod;

  /** 含税单价 */
  @ExcelProperty("含税单价")
  @DecimalString(message = "含税单价小数格式不正确", label = "含税单价")
  private String psqPrice;

  /** 已采购量 */
  @ExcelProperty("已采购量")
  @IntegerString(
    message = "已采购量数值格式不正确",
    label = "已采购量",
    min = 0
  )
  private String quantityPurchased;

  /** 可用量 */
  @ExcelProperty("可用量")
  @IntegerString(message = "可用量数值格式不正确", label = "可用量")
  private String quantityAvailable;

  /** 待检待上架量 */
  @ExcelProperty("待检待上架量")
  @IntegerString(message = "待检待上架量数值格式不正确", label = "待检待上架量")
  private String quantityTest;

  /** 待到货量 */
  @ExcelProperty("待到货量")
  @IntegerString(message = "待到货量数值格式不正确", label = "待到货量")
  private String quantityAog;

  /** 期望到货时间 */
  @ExcelProperty("期望到货时间")
  @DateString(message = "期望到货时间不是有效的日期格式")
  private String expectArriveTime;

  /** 采购员 */
  @ExcelProperty("采购员")
  @Size(max = 50, message = "采购员长度不能超过50")
  private String cgUidName;

  /** 采购员名称 */
  @ExcelProperty("采购员名称")
  @Size(max = 50, message = "采购员名称长度不能超过50")
  private String cgOptUsername;

  /** 备注 */
  @ExcelProperty("备注")
  @Size(max = 50, message = "备注长度不能超过50")
  private String remark;

  /** 状态 */
  @ExcelProperty("状态")
  @EnumsString(
    value = { "待采购", "已完成", "已驳回", "已作废", "待审批" },
    message = "状态只能是“待采购”, “已完成”, “已驳回”, “已作废”, “待审批”中的一个"
  )
  private String status;

  /** 是否为组合商品 */
  @ExcelProperty("是否为组合商品")
  @EnumsString(
    value = { "是", "否" },
    message = "是否为组合商品只能是“是”, “否”中的一个"
  )
  private String isCombo;

  /** 是否为辅料 */
  @ExcelProperty("是否为辅料")
  @EnumsString(
    value = { "是", "否" },
    message = "是否为辅料只能是“是”, “否”中的一个"
  )
  private String isAux;

  /** 是否关联了加工计划 */
  @ExcelProperty("是否关联了加工计划")
  @EnumsString(
    value = { "是", "否" },
    message = "是否关联了加工计划只能是“是”, “否”中的一个"
  )
  private String isRelatedProcessPlan;

  /** 采购计划批次号 */
  @ExcelProperty("采购计划批次号")
  @EnumsString(
    value = { "是", "否" },
    message = "采购计划批次号只能是“是”, “否”中的一个"
  )
  private String planId;

  /** 加急处理 */
  @ExcelProperty("加急处理")
  @EnumsString(
    value = { "是", "否" },
    message = "加急处理只能是“是”, “否”中的一个"
  )
  private String isPrioritized;
}
